Static Detection of Atomic-Set-Serializability Violations
نویسندگان
چکیده
Vaziri et al. [1] propose a data-centric approach to synchronization. The key underlying concept of their work is the atomic set, which specifies the existence of an invariant that holds on a set of fields of an object type. In addition, they formalize a set of eleven data-access scenarios that completely specify the set of non-serializable interleaving patterns that can lead to an atomic-set serializability violation of the expressed invariant. We present an algorithm that uses state-space exploration techniques to statically detect atomic-set serializability violations. The key idea is that the data-access scenarios can be used as a property specification for a software model checker. We tested our technique on programs with known serialiability violations from the concurrency-testing benchmark created by Eytani et al. Of the ten programs analyzed, our tool reported eight atomic-set serializability violations, with seven of them being true
منابع مشابه
Marathon: Detecting Atomic-Set Serializability Violations with Conflict Graphs
Recent research has proposed several analyses to mitigate the fact that finding concurrency bugs in multi-threaded software is notoriously hard. This work proposes a new analysis based on a correctness criterion called “atomic-set serializability”, which incorporates both race conditions and traditional atomicity/serializability. We present a novel analysis based on conflict cycle detection tha...
متن کاملLanguage Strength Reduction
This paper concerns methods to check for atomic-set serializability violations in concurrent Java programs. The straightforward way to encode a reentrant lock is to model it with a context-free language to track the number of successive lock acquisitions. We present a construction that replaces the context-free language that describes a reentrant lock by a regular language that describes a non-...
متن کاملOn Atomicity in Presence of Non-atomic Writes
The inherently nondeterministic semantics of concurrent programs isthe root of many programming errors. Atomicity (more precisely conflict seri-alizability) has been used to reduce the magnitude of this nondeterminism andtherefore make it easier to understand the behaviour of the concurrent program.Serializability, however, has not been studied well for programs executed under<l...
متن کاملA Theory of Timestamp-Based Concurrency Control for Nested Transactions
We present a rigorous framework for analyzing timestampbased concurrency control and recovery algorithms for nested transactions. We define a local correctness property, local static atomic@, that affords useful modularity. We show that local static atomicity of each object is sufficient to ensure global serializability. We present generalizations of algorithms due to Reed and Herlihy, and show...
متن کاملPreventing Atomicity Violations with Contracts
Software developers are expected to protect concurrent accesses to shared regions of memory with some mutual exclusion primitive that ensures atomicity properties to a sequence of program statements. This approach prevents data races but may fail to provide all necessary correctness properties.The composition of correlated atomic operations without further synchronization may cause atomicity vi...
متن کامل